// 测试脚本：直接测试订单模型功能是否正常工作
const { pool } = require('./config/db');
const { getUserOrders, getOrderById } = require('./models/order');

// 测试函数
async function testOrderFunctions() {
  try {
    console.log('开始测试订单模型功能...');
    
    // 1. 测试数据库连接
    await pool.getConnection()
      .then(connection => {
        console.log('数据库连接成功');
        connection.release();
      });
    
    // 2. 查询users表中存在的用户ID
    console.log('\n查询users表中存在的用户ID...');
    const [users] = await pool.execute('SELECT id FROM users LIMIT 5');
    console.log('查询到的用户ID列表:', users.map(user => user.id));
    
    // 3. 如果有用户，测试获取用户订单列表
    if (users.length > 0) {
      const testUserId = users[0].id;
      console.log(`\n测试获取用户(ID=${testUserId})的订单列表...`);
      const userOrders = await getUserOrders(testUserId); // 获取用户的所有订单
      console.log('用户订单列表获取成功:', JSON.stringify(userOrders, null, 2));
      console.log('订单总数:', userOrders.length);
      
      // 4. 如果用户有订单，测试根据ID获取订单
      if (userOrders.length > 0) {
        const firstOrderId = userOrders[0].id;
        console.log(`\n测试根据ID(${firstOrderId})获取订单详情...`);
        const orderDetail = await getOrderById(firstOrderId);
        console.log('订单详情获取成功:', JSON.stringify(orderDetail, null, 2));
      } else {
        console.log('该用户暂无订单记录');
      }
    } else {
      console.log('数据库中暂无用户记录');
    }
    
  } catch (error) {
    console.error('订单模型功能测试失败:', error);
    console.error('错误详情:', error.stack);
    console.error('这表明订单模型可能存在SQL参数化查询问题，需要进行修复');
  } finally {
    // 关闭数据库连接
    pool.end();
  }
}

// 执行测试
testOrderFunctions();